#pragma once
/*
 *  SBJ/NXT/CommandEnums.h
 *  NXTFace
 *
 *  Created by David Giovannini on 8/23/06.
 *  Copyright 2006 Software by Jove. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 * USA
 */

namespace SBJ
{

namespace NXT
{

enum Synchonous
{
	sync = 0,
	async = 1
};

enum OutputPort
{
	out_A = 0x00,
	out_B = 0x01,
	out_C = 0x02
};

enum MotorMode // switches
{
	mode_none = 0x00,
	mode_on = 0x01,
	mode_brake = 0x02,
	mode_regulated = 0x04,
	mode_all = 0x07,
};

enum MotorState // switches
{
	state_idle = 0x00,
	state_rampup = 0x10,
	state_running = 0x20,
	state_rampdown = 0x40,
	state_all = 0x70
};

enum Regulation // switches
{
	regulation_idle = 0x00,
	regulation_speed = 0x01,
	regulation_sync = 0x02,
	regulation_all = 0x03
};

enum InputPort
{	
	in_1 = 0x00,
	in_2 = 0x01,
	in_3 = 0x02,
	in_4 = 0x03
};

enum SensorType
{
	sensor_none = 0x00,
	sensor_switch = 0x01,
	sensor_tempuature = 0x02,
	sensor_reflection = 0x03,
	sensor_angle = 0x04,
	sensor_activeLight = 0x05,
	sensor_inactiveLight = 0x06,
	sensor_DB = 0x07,
	sensor_DBA = 0x08,
	sensor_custom = 0x09,
	sensor_lowspeed = 0x0A,
	sensor_lowspeed9v = 0x0B,
	sensor_unknown =0x0C
};

enum SensorMode
{
	mode_raw = 0x00,
	mode_boolean = 0x20,
	mode_transitionCounter = 0x40,
	mode_periodicCounterMode = 0x60,
	mode_pctFullScaleMode = 0x80,
	mode_celsius = 0xA0,
	mode_farenheit = 0xC0,
	mode_angleStepsMode = 0xE0,
	mode_slopeMask = 0x1F,
	mode_mask = 0xE0
};

}

}